package co.inventario.presentacion;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import co.inventario.entidad.InsumoDTO;
import co.inventario.entidad.PedidoVentaDTO;
import co.inventario.entidad.PedidoVentaInsumoDTO;
import co.inventario.modelo.fachada.PedidoVentaInsumoFachada;
@ManagedBean
public class pedidoVentaInsumoBean {

	private PedidoVentaInsumoDTO pedidoVentaInsumoDTO;
	private ArrayList<PedidoVentaInsumoDTO> pedidoVentansumoLista;
	private List<PedidoVentaInsumoDTO> pedidoVentaInsumoFilter;

	public PedidoVentaInsumoDTO getPedidoVentaInsumoDTO() {
		return pedidoVentaInsumoDTO;
	}

	public void setPedidoVentaInsumoDTO(PedidoVentaInsumoDTO pedidoVentaInsumoDTO) {
		this.pedidoVentaInsumoDTO = pedidoVentaInsumoDTO;
	}

	public ArrayList<PedidoVentaInsumoDTO> getPedidoVentansumoLista() {
		return pedidoVentansumoLista;
	}

	public void setPedidoVentansumoLista(ArrayList<PedidoVentaInsumoDTO> pedidoVentansumoLista) {
		this.pedidoVentansumoLista = pedidoVentansumoLista;
	}

	public List<PedidoVentaInsumoDTO> getPedidoVentaInsumoFilter() {
		return pedidoVentaInsumoFilter;
	}

	public void setPedidoVentaInsumoFilter(List<PedidoVentaInsumoDTO> pedidoVentaInsumoFilter) {
		this.pedidoVentaInsumoFilter = pedidoVentaInsumoFilter;
	}

	private void refescarPedidoVentaInsumo() {
		try {
			PedidoVentaInsumoFachada pedidoVentaInsumoFachada = new PedidoVentaInsumoFachada();
			pedidoVentansumoLista = pedidoVentaInsumoFachada.consultarTodo();
		} catch (Exception exception) {
			System.out.println("Error producido un error refrescando la tabla Pedido en el Bean: " + exception.getMessage());
		}
	}

	public pedidoVentaInsumoBean() {
		pedidoVentaInsumoDTO = new PedidoVentaInsumoDTO();
		PedidoVentaDTO pedidoVentaDTO = new PedidoVentaDTO();
		pedidoVentaInsumoDTO.setPedidoVentaDTO(pedidoVentaDTO);
		InsumoDTO insumoDTO = new InsumoDTO();
		pedidoVentaInsumoDTO.setInsumoDTO(insumoDTO);
		refescarPedidoVentaInsumo();
	}

	public void crear() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			PedidoVentaInsumoFachada pedidoVentaInsumoFachada = new PedidoVentaInsumoFachada();
			pedidoVentaInsumoFachada.crear(pedidoVentaInsumoDTO);
			refescarPedidoVentaInsumo();
			context.addMessage(null, new FacesMessage("Correcto", "El registro se ha creado con exito."));
		} catch (Exception exception) {
			context.addMessage(null, new FacesMessage("Error", "Se ha producido un error al crear el registro: " + exception.getMessage()));
		}
	}

	public void actualizar() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			PedidoVentaInsumoFachada pedidoVentaInsumoFachada = new PedidoVentaInsumoFachada();
			pedidoVentaInsumoFachada.actualizar(pedidoVentaInsumoDTO);
			refescarPedidoVentaInsumo();
			context.addMessage(null, new FacesMessage("Correcto", "El registro se ha creado con exito."));
		} catch (Exception exception) {
			context.addMessage(null, new FacesMessage("Error", "Se ha producido un error al crear el registro: " + exception.getMessage()));
		}
	}
	
	public void consultarTodo() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			refescarPedidoVentaInsumo();
		} catch (Exception excepcion) {
			context.addMessage(null, new FacesMessage("Error", "Se ha producido un error al consultar el registro: " + excepcion.getMessage()));
		}
	}
}
